Изучение C# для начинающих / Урок #4 - Математические действия
HTML-код
- Опубликовано: 27 май 2024
- Язык C# обладает множеством встроенных математических функций для обеспечения различных действий. За урок мы научимся выполнять простые математические операции, а также научимся вызывать встроенные математические функции.
🚀 🚀 Полезные ссылки:
🎥 Урок на сайте itProger: itproger.com/course/csharp/4
⏰ Тайм коды:
00:00 - Начало
00:20 - Создание мини программы
05:28 - Простые математические действия
08:20 - Сокращенные действия
11:45 - Встроенные математические функции
18:52 - Подсчет площади круга
22:50 - Заключительная часть
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Инстаграм itProger: / itproger_official
Группа FaceBook - goo.gl/XW0aaP
Instagram: / gosha_dudar
Telegram: t.me/itProger_official
Twitter - / goshadudar
- Уроки от #itProger 👨🏼💻
- Все уроки по хештегу #itprogerLessons
C# пессимистичный язык, при использовании метода Math.Round на значении 4,5 он выдаёт 4. Значит для него стакан всегда наполовину пуст
Питон тогда тоже) round(0.5) = 0
У меня выдоло 5!
Выдало*
Вообще это конечно очень странно, учитывая что в математике принято округлять в бо́льшую сторону.
@@GOC_GlobalOccultCoalition ну так 0.5 относится к первой половине целых чисел, поэтому и округление происходит в сторону первой половины целого числа
Повезло, что нашёл тебя. Со школы у меня база по паскалю есть, поэтому мне все более менее понятно. Спасибо 😘
Существует такой метод как Convert.ToSingle. Позволяет конвертировать данные в тип float.
А на 22:10 можно было написать :($"Площадь круга с радиусом {radius} равна {area}");
В остальном - большое спасибо!😊
И тебе спасибо за доп информацию)
а зачем он вобще всю эту хуету обьясняет? Оно ведь ни кода не опнадобиться ни одному программисту.
спасибо за метод с Single,а то метод автора выдавал ошибку даже не знаю сам из-за чего
@@___mishanya___ilin7065
Рад, что своим комментарием вам помог 😊
Успехов в освоении!
@@user-kt5om9ip1b Так он базу объясняет для тех, кто ничего не знает. Ты же не сразу скачал прогу и такой программист жесткий
Спасибо Вам за столь адекватные и подробные уроки!!!1 Прям начал понимать!!!!!! Удачи и процветания Вашему каналу!!!!
На 20:30 можно было округлить результат, тогда не пришлось бы менять short на double. Впрочем, так площадь находилась бы не точно.
Уроки очень крутые! Я новичок, но всё прекрасно понимаю.
Спасибо большое 🙏💕
3:13 а зачем, можно просто написать userInput = Convert.ToSingle(Console.ReadLine());
Для float есть же метод конвертации Single.
А шо так можноо было
Тоже не понял, зачем мудрить. Конверт в сингл и ок.
спасибо тебе мил человек
еще так можно user_input = (float)(Convert.ToDouble(Console.ReadLine()));
У меня с Single не работает, работает только с Parse
Спасибо! Очень выручаешь! Такие мелочи мне не объяснили, как без рук сейчас учусь на этом предмете.
уроки понятные и простые , спасибо продолжайте в том же духе))
Спасибо за уроки, учусь благодаря твоему труду!
Здорово спасибо за урок)
Спасибо вам большое!
Good job! Thank you for your job!
Крутые уроки!
Спасибо за урок
3:17
тут строка где мы конвертируем формат float у меня горит желтым,до самого конца,из-за этого я не могу потом выполнить операцию
user_input + 10. Ума не приложу что не так.
Возможно, аргумент-ссылка, допускающий значение NULL, для параметра "s" в "float float.Parse(string s)". [java]csharp(CS8604)
p.s помогло решение комментатор конверта в сингл,оставлю,может у кого та же проблема была
user_input = Convert.ToSingle(Console.ReadLine());
Спасибо, помогло, проблем после этого в рабочей области не обнаружено
просто гений, спасибо
Спасибо большое
спасибо за урок
спасибо огромное!!! Благодаря вашим урокам я сделал очень крутой калькулятор хотя я вообще не знал язык С#
Круто! Я даже округлил для красоты.
это улучшенная версия калькулятора
int num = 0;
Console.WriteLine ("enter number with a dot:");
num = Convert.ToInt32(Console.ReadLine());
int result = 0 ;
result = Convert.ToInt32(Console.ReadLine());
result = num * result;
Console.WriteLine ("number: " + result);
у меня уже на этом этапе выдало 4 ошибки которые я не мог долго решить чувствую будет интересно
имба курс
Приветствую,уроки огонь,подскажи пожалуйста,как включить такие же подсказки,как у тебя на Windows при наведении курсора? Смотрел через расширения,IntelliSense есть,и hints в настройках также включены,но подсказок нет
спасибо,посмотрел всего 4 урока а уже сделал калькулятор хоть и говяный)
Ещё следует упомянуть одну целочисленную операцию для которой нет символа, но которая собственно на процессоре и выполняется. Т.е. на процессоре нет операции целочисленного деления как нет и операции поиска остатка, а есть именно целочисленное деление остатка. Т.е. реальная операция деления всегда выдаёт 2 целых числа: неполное частное и остаток. Но с помощью символа можно получить только 1 число. А вот "функция" Math.DivRem выдаёт 2 числа сразу. Назвать это функцией слишком громко это всего 1 команда процессора. Но когда мы выполняем деление или вычисление остатка то или иное отбрасывается. Что не есть правильно. В некоторых ЯП можно записать:
d,r = a div b. Но не в С# пока...
Спасибо бро
Супер, я в конце округлил ответ.
Как сделать такие же всплывающие подсказки при наведении курсора?
Оно либо изночально стоит, либо найти в настройках
В VSCode по умолчанию стоит
по мне оно по умолчанию стоит попробуй задержать курсор
Наведи курсор
@@pe-ro АХАХАХАХАХ. Гений блять🤦♂️
Спасибо
0:54 мне кажется если там указать какое-то значение то оно будет числом по умолчанию, то если если пользователь не ввел число то число которое там будет указано там будет использоваться (не точно но мне так кажется)
Как тяжело учиться. Все просто, интересно)) но меня так в сон тянет, я не могу прям))
2:44 там можно было перед Convert написать (float) и будет такой же результат:
float num;
num = (float)Convert.ToDouble(Console.ReadLine());
А можно еще проще: Convert.ToSingle(Console.ReadLine());
Подскажите, как сделать так что бы в визуас код появлялись варианты выбора чего я хочу?Устал в ручную писать)
Можно гдето найти список команд с описанием для чего она нужна?
Если мы хотим вводить не целое число через точку, а не через запятую, то как нам быть? Наверное нужно вводить строковое значение, затем в нём менять нашу точку на запятую и как потом конвертировать стоковую переменную во флоат, так же командой Parse? И как осуществить замену точки на запятую?
Возможно тут есть такие как я, у которого не появляется запятая в итоговой переменной, в такой случае попробуйте все же поставить точку, тогда все получится, на всякий оставлю тут свой код, может у меня что то не то.
Console.Write("Введите число с точкой : ");
float user_input = float.Parse(Console.ReadLine());
Console.WriteLine("Переменная : " + user_input);
Интересно, что работает лучше? Код в одну строку, или обычный?
3:21 Тот самый метод ToSingle: Девачки я плачу😢
Прошу, ответьте, как сделать как на видео, так , чтобы прошлая строчка на новый становиласт
Вопрос: Зачем Convert если есть Parse?
Как подключить Math у меня не работает в VS code
4:53 так это же региональные стандарты:/ или я че то путаю? Запятая как разделитель это русский стандарт.Если бы была Винда на английском разве, мы бы не ставили точку?
Простите пожалуйста, на 4:11 я сделал у себя на компьютере user_input = float.Parse(Console.ReadLine());
А мне показывает:
D:\Проекты Visual Studio\project\Program.cs(9,38): warning CS8604: Возможно, аргумент-ссылка, допускающий значение NULL, для параметра "s" в "float float.Parse(string s)". [D:\Проекты Visual Studio\project\project.csproj]
Че делать?
Convert.ToSingle(Console.ReadLine)); Ну а вообще гугли в интернете
@@qwrqwrwgasfadgqtrgrhtyd2973 Convert.ToSingle(Console.ReadLine());
у ReadLine будут скобки стоять
Георгий Дударь, можете перезаписать свой курс по языку программирования swift?
Да, могу, но это будет не в скором времени
@@itproger Спасибо!
а є якийсь сайт з вправами по C# для практики?
почти ниче не понимаю, но надеюсь, потом пойму
👏👏
что делать если случайно написал await и теперь терминал отказывается выводить норм ответы
и пишет "This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [project]"
Это просто комментарий что бы поддержать автора.
у меня нет подсказок в вс коде и не подчеркиват ошибки, что делать?
4:30 у меня вместо ошибки пропала точка и число стало двухзначным
Программа подсчета площади круга все не хотела выводить не целые числа. Когда я исправил Console.WriteLine на System.Console.WriteLine все заработало как надо. Интересно почему
как включить такое же авто дополнение
Что делать если при нажатии на enter консоль закрывается, а не продолжает работать?
Пиши в конце после всех действий Console.Read(); он тебе поможет в конце чтоб консоль не закрылась автоматически.
У меня при аналогичном коде реадлайн в парсе подчеркивается желтым
error CS0117: "Math" не содержит определение для "Pow".
Как исправить
А как подключить Майкрософт Нэт к визуалу.
А то у меня почему нет сверху и в структуре слова main как у вас
Скачай сразу обычную Visual Studio
7:40 почему вы не показали как правильно настраивать код, чтобы int a = 5, b = 6 работал?
Показывал в прошлом уроке!
И этот тоже просто комментарий что бы поддержать автора.
Ребят что делать если когда пишу using System то оно не зелёное, а серое и пишет " ненужная дериктива using"?
заметка:
16:14 виды округления
Если работайте VS нажимайте CTRL+F5 а не просто F5 .Если нажмете F5 то консоль будет закриватса при нажатие enter
Когда сайт заработает?
Мы будем подсчитывать плОщу всего нашего вот этого кругА)))
просто Гоша с Украины. вот и проскакивают невольно родные слова
16:10 интересный факт, если в round прописать число к примеру 3.50 оно его округлит не до 4, а до 3, странно как то
Брехня! Выдает 4!
Ну если будет 3.60 тогда округлиться до 4 а если 3.59 то до 3
По умолчанию Round() использует *банковское округление* , то есть число округляется к ближайшему чётному числу. Чтобы перейти к более привычному *математическому округлению* нужно передать в функцию Round() параметр _mode_ . Пример:
Math.Round(2.5) //Выведет 2
Math.Round(1.5) //Выведет 2
Math.Round(2.5, MidpointRounding.AwayFromZero) //Выведет 3
у меня в программке про площадь выдает ошибку и говорит что "невозможно преобразовать из 'группы методов' в 'bool' "
А откуда ты bool в площади взял то? Bool может быть равен только True либо False
По поводу запятой это зависит от системы какой вы разделитель дробной части поставили... У вас видимо стоит запятая. У меня точка. Так что мне запятую вводить не надо... А вобще это можно посмотреть и если что заменить. Ну чтобы не было дурацкой ошибки...
А почему если single это то же самое что float для конвертации нельзя использовать Convert.ToSingle(System.readline())?
можно
result = *(либо /, либо %) 5f;
выдаёт ошибку на умножении - к указателю должен быть применён указатель * или ->
на делении и на остатке при делении - недопустимый термин в выражении
На сложении и вычитании всё норм.
Вроде понял, это применяется, когда происходит взаимодействие с другой переменной.
Действие нужно писать до знака ровно
Хочу написать шуточное приложение.
Но по какому принципу построить логику не могу сообразить.
Смысл приложения вопрос - ответ.
К примеру пользователь видит вопрос как его имя. И если он вводит не свое, то программа его просит сделать это снова. И тут несколько вариантов ответов программы.
Если пользователь вводит нужное значение. Допустим имя Иван. Но ввести его можно по разному. Иван, иван, Ваня и т.д.
С помощью массивов это не сделать. Там числовые значения. Использовать тип данных bool и перебор значений типа строки?
Или как?
17:16 или когда делаем соревновательную игру
using System;
using System.Linq;
using System.Collections.Generic;
namespace triangle;
public static class Program
{
public static void Main()
{
Console.WriteLine("Введите 3 стороны треугольника в удобной для вас мере измерения. Мы найдем площадь вашего треугольника.");
double a = Convert.ToDouble(Console.ReadLine());
double b = Convert.ToDouble(Console.ReadLine());
double c = Convert.ToDouble(Console.ReadLine());
double p = a + b + c; p = p / 2;
double s = p * (p - a) * (p - b) * (p - c);
s = Math.Sqrt(s);
Console.WriteLine(s + " - это площадь вашего треугольника в вашей мере исчесления");
// по скрипту это моя первая программа тут я сделал так что можно найти площадь треугольника пхехе.
}
}
Изменено: это всё я написал после этого урока.
Просто наверное многие не понимают откуда ToInt16. Я просто хочу помочь некоторым понять материал.
Подскажите делаю первую програму делаю все как на видео но у меня после любого числа с точкой вылетает терминал что делать?
Попробуй сделать чтобы была не точка а запятая
20 раз пытался, ничего не работает. Выдаёт ошибку "Возможно, аргумент-ссылка, допускающий NULL, для параметра ...
Или ты в не том приложении или ты это на домофоне делаешь
У меня команда result не работает) :
Жаль нет объяснения почему result будучи float везде выводится как целочисленное (60; 59)
А как вы сделали подсказки команд, методов
Установлюєш пакет C# у Vs Code
@@user-ew1tv6hp9q я уже давно пофиксил проблему. У меня интернет просто слабый, и поэтому каждый раз при скачивании OmniSharp выдавал эррор, а я этого не замечал.
можно ли внутри Math.Min или Math.Max ещё раз вписать данную функцию?
Можно
3:01 чет я не понял, типа мы не можем прописать Convert.ToFloat и так далее? Почему, разве такого метода не существует?!
Есть. Convert.ToSingle
12:08 не работает. Visual studio 2022. С# консольное приложения(.Net framework)
Два раза нажми таб
float user_input;
Console.Write("Введите число с точкой")
// user_input = Convert.ToDouble(Console.ReadLine());
user_input = float.Parse(Console.ReadLine());
Добрый день. Подчеркивает почему-то Console.ReadLine в последней строке
Во 2 строке нет в конце точки с запятой, может поэтому.
@@savvy365_ae не в этом дело
Ты перед user_input не объявил тип переменной. Там надо в третьей строке в начале float написать
Таже ерунда( Подчеркивает почему-то Console.ReadLine в последней строке
@@KrasmanOriginal нашёл решение проблемы? а тоу меня такое же
Хоть я и не на этом уроке я все равно удивлен надписью "4 минуты назад"
я скачать програму и все нужное, но какого (у меня визуал студио код) у меня вместо моего кода когда я пишу дотнет ран выводит хело ворлд хотя я этот шаблон стёр
Збережи свій написаний проект Ctrl + S
помогите кто знает. все делаю правильно, а когда запускаю пишет (Ошибка сборки.
Имя "user" не существует в текущем контексте.
Имя "user_input" не существует в текущем контексте.) И все в красном
у вас неправильно установлен IDE. Возможно у вас нету .NET
@@user-vp6dx9mi3k спасибо, я уже разобрался
А как у него подсказки всплывают такие полезные и ошибки подчеркиваются? У меня не всплывает ничего
У меня терминал не работает(.
16:25
Да елки палки и тут эти косинусы и синусы
я создал первую прогу
калькулятор чисел )
держи в курсе
У меня все выдедено красным,хотя все пишу верно и программа не запускается 😢
Друг, скажи, что за версия
просто качаешь dotnet последнию у меня всё работает
Я с плюсов. Смотрю на 2x
просто так пишу. Math.Round(4.5d) = 4 и Math.Round(3.5d) = 4
По умолчанию Round() использует *банковское округление* , то есть число округляется к ближайшему чётному числу. Чтобы перейти к более привычному *математическому округлению* нужно передать в функцию Round() параметр _mode_ . Пример:
Math.Round(2.5) //Выведет 2
Math.Round(1.5) //Выведет 2
Math.Round(2.5, MidpointRounding.AwayFromZero) //Выведет 3
Надеюсь эти уроки не закончатся)))
Не закончатся :)
Если поделить int a = 5, b = 6; int res = a/b; то консоль выдаст 0. Так что тут вы приврали.
Начинаю смотреть видео , в этом полный ноль! пока ничего не понятно !)) посоветуйте как лучше закреплять материал ? а то посмотрел, в одно ухо залетело и вылетело, и как закрепить просмотренное не понимаю, потому что не знаю как и где такое применять потом! дайте совет полному нулю с минусом ))) может нужно было начать смотреть видео по Юнити сначала ?
просто практикуйтесь, например в этом видео вы изучили математические операции. Попробуйте сделать что-то типа калькулятора например. Я так учился.
@@user-vp6dx9mi3k Спасибо!
В начале ролика крайне запутанно и нелогично: сначала всё можно, начинаем писать код, потом оказывается нельзя и удаляем всю строчку, а логического завершения мысли нет.
То есть: "Так как метода конвертации в float нет (ToFloat нет), то нужно пользоваться методом "ToDouble", который принимает некую строку и конвертирует в тип данных float и double". Но потом вдруг оказывается, что ToDouble не конвертирует во float. Эмм. Не понял
+
Бро, у тебя сайт ломанули
Топ
Привет всем! Мне интересно, кому сколько лет и кто знает какие языки! Например мне 12 лет и я знаю Python и совсем чуть-чуть С++ и изучаю C#. Я хочу стать программистом.